package com.ocom.common.entity.payconfig;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 缴费项目
 * </p>
 *
 * @author junShu
 * @since 2023-08-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class FeeItem implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id 主键自增
     */
    @JsonProperty("feeItemId")
    @TableId(value = "item_id", type = IdType.AUTO)
    private Integer itemId;

    /**
     * 单位编号
     */
    private Long comId;

    /**
     * 缴费项目名称
     */
    @JsonProperty("feeItemName")
    private String itemName;

    /**
     * 缴费账户编号。与商户编号merch_id共用
     */
    private Integer accountId;

    /**
     * 指定部门编号。0表示不指定部门
     */
    private Integer deptId;

    /**
     * 1 数据准备 2 缴费中 3 中止缴费 5 关闭
     */
    private Integer status;

    /**
     * 说明
     */
    private String remark;

    /**
     * 缴费开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+08")
    private Date startDate;

    /**
     * 缴费截止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+08")
    private Date stopDate;

    /**
     * 中止缴费时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+08")
    private Date pauseTime;

    /**
     * 项目关闭时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+08")
    private Date closeTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新人p_id
     */
    private Integer updateUserid;

    @JsonProperty("strStatus")
    @TableField(exist = false)
    private Integer strStatus;
//    @JsonProperty("feeItemName")
//    @TableField(exist = false)
//    private String feeItemName;

    public Integer getStrStatus() {
        return status;
    }
//    public String getFeeItemName() {
//        return itemName;
//    }


    @TableField(exist = false)
    private int planAmount;
    @TableField(exist = false)
    private int planNumber;
    @TableField(exist = false)
    private int completeAmount;
    @TableField(exist = false)
    private int completeNumber;
    @TableField(exist = false)
    private int refundAmount;
    @TableField(exist = false)
    private int refundNumber;



}
